昨天我們讓服務學會了「出事大喊」(Prometheus + Alertmanager)。
不過你有沒有發現,光靠告警有時候還不夠?
想像一下打 MMORPG,補師只會在血量 < 30% 時大喊:「補血補血!」
這雖然有效,但打王打到一半,你完全不知道全隊血量、藍條狀況,壓力還不是爆炸?
今天的主角就是 Grafana。
它的任務很單純:把冷冰冰的數字變成一張張圖表,讓你一眼看出服務健康狀態。
Prometheus 給你 Excel 表格,Alertmanager 給你鬧鐘,Grafana 則給你遊戲介面上的「血條 UI」。
監控的世界就像玩團隊副本,光有單一訊號其實不夠。
這三者不是替代,而是互補。
數字 → 告警 → 圖像,這才是完整的觀測體驗。
先用 Docker Compose 把 Grafana 拉起來
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
networks: [web]
到這裡 Grafana 就跟 Prometheus 接上線,能開始畫圖了。
記得在下面補 volume
volumes:
caddy_data:
caddy_config:
grafana-data: # 這裡要補上
這樣 docker-compose 才知道要建立一個名叫 grafana-data 的 volume
接下來來做一個最經典的 Panel:HTTP 請求數量。
這個畫面,代表你的監控正式活了。
Prometheus 把數字存在倉庫,Grafana 就是把那些數字搬上 UI 面板。
沒了它,你只能一行一行讀數字;有了它,你能像玩家看血條那樣輕鬆掌握狀況。
有人會問:「有了 Grafana,還需要 Alertmanager 嗎?」
答案是:一定要。
舉例來說:
一個是戰況地圖,一個是緊急警報,缺一不可。
昨天我們做到了「出事會大喊」,今天我們更進一步,能「平時就看見全局」。
Grafana 把 DevSecOps 的監控,從「數字」進化成「圖像化」。
就像副本 UI 裝上血條、藍條、技能冷卻,團隊才能安心輸出,不會到滅團才發現全員殘血。
Prometheus → Alertmanager → Grafana
三位一體,才是完整的 Observability 起手式。